package com.blueocean_health.care.management.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.blueocean_health.care.management.domain.base.Department;
import com.blueocean_health.care.management.domain.dto.DeptManagerDto;
import com.blueocean_health.care.management.domain.dto.PullDownDto;
import com.blueocean_health.care.management.util.MyMapper;

@Mapper
public interface DepartmentMapper extends MyMapper<Department> {

    @Select("SELECT *FROM department WHERE hospital_id =#{hospitalId} and is_active = 1 ORDER BY sort_number ")
    List<Department> getAllByHospitalIdForSort(@Param("hospitalId") String hospitalId);

    @Update("UPDATE department SET sort_number =#{sort},is_show =#{isShow},update_time = NOW() WHERE dept_id =#{id}")
    int updateSortByid(@Param("id")Integer id,@Param("sort")Integer sort,@Param("isShow")Integer isShow);

    @Select("SELECT *FROM department WHERE hospital_id =#{hospitalId} and is_active = 1 and is_show= 1 ORDER BY sort_number ")
    List<Department> getActiveByHospitalIdForSort(@Param("hospitalId") String hospitalId);

    /**
     * wuyanli 根据医院Id获取科室 信息  2017年8月30日14:38:00
     * @param hospitalId
     * @return
     */
    List<PullDownDto> getDeptByHospitalId(String hospitalId);
    /**
     * 根据筛选条件查询科室信息  2018年1月6日14:55:32
     * @param map
     * @return
     */
    List<DeptManagerDto>  getDeptManagerList(Map<String,String> map);
    /**
     * 根据科室Id查询科室信息  2018年1月6日15:41:37
     * @param map
     * @return
     */
    List<DeptManagerDto>  getDeptManagerById(Map<String,String> map);
    /**
	 * 保存科室信息  2018年1月8日16:34:03
	 * @param dept
	 * @return
	 */
	int insertDept(DeptManagerDto dept);
	/**
	 * 修改科室信息  2018年1月8日16:34:09
	 * @param dept
	 * @return
	 */
	int updateDept(DeptManagerDto dept);
	
	/**
	 * 根据Id进行逻辑删除 2018年1月8日16:34:13
	 * @param id
	 * @return
	 */
	int deleteDept(String id);
	/**
	 * 根据科室科室名称和医院Id获取科室Id  2018年1月8日16:55:58
	 * @param map
	 * @return
	 */
	List<DeptManagerDto> getDeptId(Map<String,String> map);
	
	/**
	 * 根据医院Id查询该医院的外派科室  2018-3-12 15:17:06
	 * @param hospitalId
	 * @return
	 */
	String getWaiPaiId(String hospitalId);

}